This invention relates to a call handling mechanism for telecommunications apparatus, to such a telecommunications apparatus and to a method of handling calls in such an apparatus.
Traditionally, automated call answering was at a fairly rudimentary level with a simple answerphone message. However, over the years, more complicated call handling systems have developed, including voicemail systems which enable menus of items to be presented to users, and different forms of messaging to be provided. Subsystems can be provided for use with a single computer or, for example, on local telephone switchboard equipment (PBX). Such call handling and voicemail systems are typically implemented by means of computer programs residing and executing on computing hardware of the PBX, or computer where the system is operating. However, such systems are traditionally inflexible in operation, and provide a predetermined combination of voice answering, facsimile and data modes. An aim of the present invention is to provide a call handling mechanism which is able to operate using independently supplied functional modules, or applications, for handling different types of received calls, such as voice, fax, data or different combinations of these. Although such systems do provide some flexibility to the user in that personal selections may be made as to outgoing messages, menu options, etc., these features are typically complex to program and require a significant investment in time on behalf of the user. Accordingly, conventional systems are not ideally suited to home or small business use where the user may not have the time or knowledge to set up a complex system.
Although typical home or small business users may not have the time or knowledge to be able to program complex systems, they may nevertheless have quite complicated requirements as regards the call answering functionality which they require. For example, they may need different messages depending on the origin of the call, the time of day, and many other factors. Accordingly, an aim of the present invention is to seek a solution to the provision of a complicated call handling system, while not putting undue burden on the users with regard to the programming and setting up of such a system.
Particular and preferred aspects of the invention are set out in the accompanying independent and dependent claims. Combinations of features from the dependent claims may be combined with features of the independent claims as appropriate and not merely as explicitly set out in the claims.
In accordance with one aspect of the invention, there is provided a telephony control mechanism comprising a relocatable serialised object having an identifiable root node to a directed graph. The directed graph includes a plurality of modules for performing elements of call handling functionality.
Configuring a telephony control mechanism in the form of a plurality of modules linked by a directed graph provides an extremely flexible method of putting together a desired combination of telephony control functions. From modules providing simple primitive elements of telephony control, a telephony mechanism of any desired degree of complexity can be created. Moreover, flexibility is further enhanced by providing the telephony control mechanism as a relocatable serialised object. In this manner, it is not necessary to predefine telephony control functions within a telecommunications device. A set of telephony control mechanisms with different configurations can be held, for example at a location remote from the telecommunications device and then be ported or transferred to the telecommunications device via the telecommunications network. The user of the telecommunications device can, therefore, select a desired telephony functionality and then port an appropriate serialised object to his or her telecommunications device. The telephony control mechanism can then be activated by accessing the root node to the directed graph.
In order to implement the directed graph, at least one of the modules is operable to determine a result defining a link to a successor module. More particularly, the module is an object providing at least one method, the result returned by the method determining a link to a successor object.
In a preferred embodiment of the invention, the modules encapsulate components in the form of xe2x80x9cbean objectsxe2x80x9d, more particularly Java beans with the serialised object a serialised Java(trademark) object. Beans, e.g., Java beans, comprise characteristics including a set of properties, a set of methods for performing actions, and support for events and for introspection which enable the creation of operational modules which can be linked by a directed graph to provide a functional whole.
In an application of the invention for defining the functionality of a call handling system, at least one module defines a personality for the call handling system. The personality may relate to choice of language or message style for the call handling system. The choice of which style to use at any time can be effected automatically depending on functions of a call such as the timing of the call or the source of the call.
If the functionality of the call handling system is to be linked to a parameter of a call, for example the identity of the caller or the source of a call, there is preferably at least one module which comprises a method operable to return a result dependent upon at least one parameter of a call, for example the caller ID. In this case the result returned by the method determines a link to a successor module which may set a predetermined personality for the call handling system.
In order to provide automatic call filtering (e.g. to discard calls from an unwanted source), at least one module can provide a function of call filtering dependent upon at least one parameter of a call, for example a caller ID, whereby a call may be rejected before ringing tones are generated by the user""s telephone.
The telephony control mechanism may be in the form of a computer program product on a carrier medium, such as storage device or a telecommunications transmission medium. Alternatively, at least a part of the mechanism may be embedded, or hard-wired in a device, such as an ASIC.
In accordance with another aspect of the invention, there is provided a call handling system comprising a telephony control mechanism as set out above.
In accordance with a further aspect of the invention, there is provided a telecommunications apparatus comprising at least one interface to a telecommunications network and a telephony control mechanism as set out above.
The interface is configured to be operable to activate the telephony control mechanism in response to an incoming call from the telecommunications network. The telecommunications apparatus preferably comprises persistent storage forming a carrier medium for the telephony control mechanism, to avoid having to reload the telephony control mechanism on initialising the telecommunications apparatus, for example after a power failure.
In accordance with further aspect of the invention, there is provided a method of configuring telecommunications apparatus to provide a telephony mechanism. The method includes the relocating of a copy of a serialised computer software telephony control mechanism from a remote location via a telecommunications network to local storage in the telecommunications station. The computer software telephony control mechanism comprising a relocatable serialised object having an identifiable root node to a directed graph, the directed graph including a plurality of modules for performing telephony control functions.
The invention also provides a method of enabling remote configuring of telecommunications apparatus comprising steps of:
providing a plurality of different telephony control mechanisms at a network location (e.g. a web site), each telephony control mechanism comprising a relocatable serialised object having an identifiable root node to a directed graph, the directed graph including a plurality of modules for performing telephony control functions; and
enabling a user to select and to copy a telephony control mechanism from the network location for configuring a telephony mechanism at the user""s telecommunications apparatus.
In accordance with yet another aspect of the invention, there is provided a method of answering a telephone call in a telecommunications apparatus having an interface to a telecommunications network, the method including steps of:
detecting an incoming call at the interface; and
calling a root node of a serialised computer software telephony control mechanism, the computer software telephony control mechanism comprising a relocatable serialised object having an identifiable root node to a directed graph, the directed graph including a plurality of modules for performing telephony control functions.
Thus, it can be seen that an embodiment of the invention can provide each individual customer or user with a different set of requirements for their telephony apparatus, without the user needing to have a large knowledge of such requirements. An embodiment of the invention provides a telephony implementation where the telephony control mechanism can be described as a directed graph with nodes corresponding to telephony components that form low level functions such as playing an audio prompt, reading signalling information, reading out users messages, changing a vocal prompt style, sending faxes, etc. Labelled arcs in the directed graph link each node depending on the results returned by a current node. The resulting graph is created externally to the user""s telecommunications apparatus, is serialised and placed in a location accessible to the telecommunications apparatus (e.g., at a location where it can be loaded by a Java class loader).
As the runtime behaviour of the telecommunications system is not fixed by a program, and because a serialised object may be loaded from a remote location, it is possible to configure a dynamic interface which may be sourced from any location accessible via the telecommunications network, for example a call handling mechanism may be stored at a web site and the user may be able to obtain the call handling mechanism as a xe2x80x9csmall business telephony controlxe2x80x9d by means of a drag and drop operation using conventional web browser technology. By providing a set of different telephony objects at the web site, a user may dynamically reconfigure the call answering mechanism of his or her telecommunications apparatus, depending on the desired usage in, for example, a home or small business environment.